home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Magazine / GraphicsCards / StormMesa / src / depth.s < prev    next >
Text File  |  1999-02-04  |  32KB  |  1,974 lines

  1.  
  2. ; Storm C Compiler
  3. ; Work2:Mesa3/Mesa-3.0/src/depth.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _gl_error
  7.     XREF    _gl_problem
  8.     XREF    _q_memset
  9.     XREF    _q_memcpy
  10.     XREF    _malloc
  11.     XREF    _free
  12.     XREF    _CC
  13.  
  14.     SECTION "_gl_ClearDepth:0",CODE
  15.  
  16.  
  17. ;void gl_ClearDepth( GLcontext* ctx, GLclampd depth )
  18.     XDEF    _gl_ClearDepth
  19. _gl_ClearDepth
  20.     move.l    4(a7),a0
  21.     fmove.d    $8(a7),fp0
  22. L266
  23. ;   if (INSIDE_BEGIN_END(ctx)) 
  24.     move.l    a0,a1
  25.     add.l    #$E968,a1
  26.     move.l    (a1),d0
  27.     cmp.l    #$1A00,d0
  28.     beq.b    L268
  29. L267
  30. ;      gl_error( ctx, GL_INVALID_OPERATION, "glClearDepth" );
  31.     move.l    #L265,-(a7)
  32.     pea    $502.w
  33.     move.l    a0,-(a7)
  34.     jsr    _gl_error
  35.     add.w    #$C,a7
  36.     rts
  37. L268
  38. ;   ctx->Depth.Clear = (GLfloat) CLAMP( depth, 0.0, 1.0 );
  39.     fcmp.d    #$.00000000.00000000,fp0
  40.     fboge.b    L270
  41. L269
  42.     fmove.d    #$.00000000.00000000,fp0
  43.     bra.b    L274
  44. L270
  45.     fcmp.d    #$.3FF00000.00000000,fp0
  46.     fbole.b    L274
  47. L271
  48.     fmove.d    #$.3FF00000.00000000,fp0
  49. L272
  50. L273
  51. L274
  52.     fmove.s    fp0,$22A0(a0)
  53.     rts
  54.  
  55. L265
  56.     dc.b    'glClearDepth',0
  57.  
  58.     SECTION "_gl_DepthFunc:0",CODE
  59.  
  60.     rts
  61.  
  62. ;void gl_DepthFunc( GLcontext* ctx, GLenum func )
  63.     XDEF    _gl_DepthFunc
  64. _gl_DepthFunc
  65.     move.l    $8(a7),d0
  66.     move.l    4(a7),a0
  67. L277
  68. ;   if (INSIDE_BEGIN_END(ctx)) 
  69.     move.l    a0,a1
  70.     add.l    #$E968,a1
  71.     move.l    (a1),d1
  72.     cmp.l    #$1A00,d1
  73.     beq.b    L279
  74. L278
  75. ;      gl_error( ctx, GL_INVALID_OPERATION, "glDepthFunc" );
  76.     move.l    #L275,-(a7)
  77.     pea    $502.w
  78.     move.l    a0,-(a7)
  79.     jsr    _gl_error
  80.     add.w    #$C,a7
  81.     rts
  82. L279
  83. ;   switch (func)
  84.     move.l    d0,d1
  85.     sub.l    #$200,d1
  86.     cmp.l    #7,d1
  87.     bhi.b    L281
  88.     move.l    L283(pc,d1.l*4),a1
  89.     jmp    (a1)
  90. L283
  91.     dc.l    L280
  92.     dc.l    L280
  93.     dc.l    L280
  94.     dc.l    L280
  95.     dc.l    L280
  96.     dc.l    L280
  97.     dc.l    L280
  98.     dc.l    L280
  99. ;      
  100. L280
  101. ;         ctx->Depth.Func = func;
  102.     move.l    d0,$229C(a0)
  103. ;         ctx->NewState |= NEW_RASTER_OPS;
  104.     move.l    a0,a1
  105.     add.l    #$E960,a1
  106.     move.l    (a1),d0
  107.     or.l    #2,d0
  108.     add.l    #$E960,a0
  109.     move.l    d0,(a0)
  110. ;         
  111.     bra.b    L282
  112. L281
  113. ;         gl_error( ctx, GL_INVALID_ENUM, "glDepth.Func" );
  114.     move.l    #L276,-(a7)
  115.     pea    $500.w
  116.     move.l    a0,-(a7)
  117.     jsr    _gl_error
  118.     add.w    #$C,a7
  119. L282
  120.     rts
  121.  
  122. L276
  123.     dc.b    'glDepth.Func',0
  124. L275
  125.     dc.b    'glDepthFunc',0
  126.  
  127.     SECTION "_gl_DepthMask:0",CODE
  128.  
  129.  
  130. ;void gl_DepthMask( GLcontext* ctx, GLboolean flag )
  131.     XDEF    _gl_DepthMask
  132. _gl_DepthMask
  133.     move.b    $8(a7),d1
  134.     move.l    4(a7),a0
  135. L285
  136. ;   if (INSIDE_BEGIN_END(ctx)) 
  137.     move.l    a0,a1
  138.     add.l    #$E968,a1
  139.     move.l    (a1),d0
  140.     cmp.l    #$1A00,d0
  141.     beq.b    L287
  142. L286
  143. ;      gl_error( ctx, GL_INVALID_OPERATION, "glDepthMask" );
  144.     move.l    #L284,-(a7)
  145.     pea    $502.w
  146.     move.l    a0,-(a7)
  147.     jsr    _gl_error
  148.     add.w    #$C,a7
  149.     rts
  150. L287
  151. ;   ctx->Depth.Mask = flag;
  152.     move.b    d1,$22A5(a0)
  153. ;   ctx->NewState |= NEW_RASTER_OPS;
  154.     move.l    a0,a1
  155.     add.l    #$E960,a1
  156.     move.l    (a1),d0
  157.     or.l    #2,d0
  158.     add.l    #$E960,a0
  159.     move.l    d0,(a0)
  160.     rts
  161.  
  162. L284
  163.     dc.b    'glDepthMask',0
  164.  
  165.     SECTION "_gl_depth_test_span_generic:0",CODE
  166.  
  167.  
  168. ;GLuint gl_depth_test_span_generic( GLcontext* ctx,
  169.     XDEF    _gl_depth_test_span_generic
  170. _gl_depth_test_span_generic
  171. L407    EQU    -$10
  172.     link    a5,#L407
  173.     movem.l    d2-d4/a2-a4,-(a7)
  174.     movem.l    $C(a5),d1-d3/a2
  175.     move.l    $8(a5),a4
  176. L289
  177. ;   GLdepth *zptr = Z_ADDRESS( ctx, x, y );
  178.     move.l    a4,a1
  179.     move.l    $8FC(a1),a0
  180.     move.l    $C(a0),a1
  181.     move.l    a4,a3
  182.     move.l    $8FC(a3),a0
  183.     move.l    4(a0),d0
  184.     muls.l    d3,d0
  185.     lea    0(a1,d0.l*2),a0
  186.     lea    0(a0,d2.l*2),a1
  187. ;   GLubyte *m = mask;
  188.     move.l    $1C(a5),a0
  189. ;   GLuint passed = 0;
  190.     moveq    #0,d2
  191. ;   switch (ctx->Depth.Func)
  192.     move.l    #$229C,d0
  193.     add.l    a4,d0
  194.     move.l    d0,a3
  195.     move.l    (a3),d0
  196.     sub.l    #$200,d0
  197.     cmp.l    #7,d0
  198.     bhi    L405
  199.     move.l    L408(pc,d0.l*4),a3
  200.     jmp    (a3)
  201. L408
  202.     dc.l    L401
  203.     dc.l    L290
  204.     dc.l    L375
  205.     dc.l    L307
  206.     dc.l    L341
  207.     dc.l    L358
  208.     dc.l    L324
  209.     dc.l    L392
  210. ;      
  211. L290
  212. ;         if (ctx->Depth.Mask) 
  213.     move.l    #$229C,d0
  214.     add.l    a4,d0
  215.     move.l    d0,a3
  216.     tst.b    $9(a3)
  217.     beq.b    L299
  218. L291
  219. ;            for (i=0;
  220.     moveq    #0,d0
  221.     bra.b    L297
  222. L292
  223. ;               if (*m) 
  224.     tst.b    (a0)
  225.     beq.b    L296
  226. L293
  227. ;                  if (z[i] < *zptr) 
  228.     move.l    d0,d3
  229.     add.l    d3,d3
  230.     add.l    a2,d3
  231.     move.l    d3,a3
  232.     move.w    (a3),d4
  233.     cmp.w    (a1),d4
  234.     bhs.b    L295
  235. L294
  236. ;                     *zptr = z[i];
  237.     move.l    d0,d3
  238.     add.l    d3,d3
  239.     add.l    a2,d3
  240.     move.l    d3,a3
  241.     move.w    (a3),(a1)
  242. ;                     passed++;
  243.     addq.l    #1,d2
  244.     bra.b    L296
  245. L295
  246. ;                     *m = 0;
  247.     clr.b    (a0)
  248. L296
  249.     addq.l    #1,d0
  250.     addq.w    #2,a1
  251.     addq.w    #1,a0
  252. L297
  253.     cmp.l    d1,d0
  254.     blo.b    L292
  255. L298
  256.     bra.b    L306
  257. L299
  258. ;            for (i=0;
  259.     moveq    #0,d0
  260.     bra.b    L305
  261. L300
  262. ;               if (*m) 
  263.     tst.b    (a0)
  264.     beq.b    L304
  265. L301
  266. ;                  if (z[i] < *zptr) 
  267.     move.l    d0,d3
  268.     add.l    d3,d3
  269.     add.l    a2,d3
  270.     move.l    d3,a3
  271.     move.w    (a3),d4
  272.     cmp.w    (a1),d4
  273.     bhs.b    L303
  274. L302
  275. ;                     passed++;
  276.     addq.l    #1,d2
  277.     bra.b    L304
  278. L303
  279. ;                     *m = 0;
  280.     clr.b    (a0)
  281. L304
  282.     addq.l    #1,d0
  283.     addq.w    #2,a1
  284.     addq.w    #1,a0
  285. L305
  286.     cmp.l    d1,d0
  287.     blo.b    L300
  288. L306
  289. ;         
  290.     bra    L406
  291. L307
  292. ;         if (ctx->Depth.Mask) 
  293.     move.l    #$229C,d0
  294.     add.l    a4,d0
  295.     move.l    d0,a3
  296.     tst.b    $9(a3)
  297.     beq.b    L316
  298. L308
  299. ;            for (i=0;
  300.     moveq    #0,d0
  301.     bra.b    L314
  302. L309
  303. ;               if (*m) 
  304.     tst.b    (a0)
  305.     beq.b    L313
  306. L310
  307. ;                  if (z[i] <= *zptr) 
  308.     move.l    d0,d3
  309.     add.l    d3,d3
  310.     add.l    a2,d3
  311.     move.l    d3,a3
  312.     move.w    (a3),d4
  313.     cmp.w    (a1),d4
  314.     bhi.b    L312
  315. L311
  316. ;                     *zptr = z[i];
  317.     move.l    d0,d3
  318.     add.l    d3,d3
  319.     add.l    a2,d3
  320.     move.l    d3,a3
  321.     move.w    (a3),(a1)
  322. ;                     passed++;
  323.     addq.l    #1,d2
  324.     bra.b    L313
  325. L312
  326. ;                     *m = 0;
  327.     clr.b    (a0)
  328. L313
  329.     addq.l    #1,d0
  330.     addq.w    #2,a1
  331.     addq.w    #1,a0
  332. L314
  333.     cmp.l    d1,d0
  334.     blo.b    L309
  335. L315
  336.     bra.b    L323
  337. L316
  338. ;            for (i=0;
  339.     moveq    #0,d0
  340.     bra.b    L322
  341. L317
  342. ;               if (*m) 
  343.     tst.b    (a0)
  344.     beq.b    L321
  345. L318
  346. ;                  if (z[i] <= *zptr) 
  347.     move.l    d0,d3
  348.     add.l    d3,d3
  349.     add.l    a2,d3
  350.     move.l    d3,a3
  351.     move.w    (a3),d4
  352.     cmp.w    (a1),d4
  353.     bhi.b    L320
  354. L319
  355. ;                     passed++;
  356.     addq.l    #1,d2
  357.     bra.b    L321
  358. L320
  359. ;                     *m = 0;
  360.     clr.b    (a0)
  361. L321
  362.     addq.l    #1,d0
  363.     addq.w    #2,a1
  364.     addq.w    #1,a0
  365. L322
  366.     cmp.l    d1,d0
  367.     blo.b    L317
  368. L323
  369. ;         
  370.     bra    L406
  371. L324
  372. ;         if (ctx->Depth.Mask) 
  373.     move.l    #$229C,d0
  374.     add.l    a4,d0
  375.     move.l    d0,a3
  376.     tst.b    $9(a3)
  377.     beq.b    L333
  378. L325
  379. ;            for (i=0;
  380.     moveq    #0,d0
  381.     bra.b    L331
  382. L326
  383. ;               if (*m) 
  384.     tst.b    (a0)
  385.     beq.b    L330
  386. L327
  387. ;                  if (z[i] >= *zptr) 
  388.     move.l    d0,d3
  389.     add.l    d3,d3
  390.     add.l    a2,d3
  391.     move.l    d3,a3
  392.     move.w    (a3),d4
  393.     cmp.w    (a1),d4
  394.     blo.b    L329
  395. L328
  396. ;                     *zptr = z[i];
  397.     move.l    d0,d3
  398.     add.l    d3,d3
  399.     add.l    a2,d3
  400.     move.l    d3,a3
  401.     move.w    (a3),(a1)
  402. ;                     passed++;
  403.     addq.l    #1,d2
  404.     bra.b    L330
  405. L329
  406. ;                     *m = 0;
  407.     clr.b    (a0)
  408. L330
  409.     addq.l    #1,d0
  410.     addq.w    #2,a1
  411.     addq.w    #1,a0
  412. L331
  413.     cmp.l    d1,d0
  414.     blo.b    L326
  415. L332
  416.     bra.b    L340
  417. L333
  418. ;            for (i=0;
  419.     moveq    #0,d0
  420.     bra.b    L339
  421. L334
  422. ;               if (*m) 
  423.     tst.b    (a0)
  424.     beq.b    L338
  425. L335
  426. ;                  if (z[i] >= *zptr) 
  427.     move.l    d0,d3
  428.     add.l    d3,d3
  429.     add.l    a2,d3
  430.     move.l    d3,a3
  431.     move.w    (a3),d4
  432.     cmp.w    (a1),d4
  433.     blo.b    L337
  434. L336
  435. ;                     passed++;
  436.     addq.l    #1,d2
  437.     bra.b    L338
  438. L337
  439. ;                     *m = 0;
  440.     clr.b    (a0)
  441. L338
  442.     addq.l    #1,d0
  443.     addq.w    #2,a1
  444.     addq.w    #1,a0
  445. L339
  446.     cmp.l    d1,d0
  447.     blo.b    L334
  448. L340
  449. ;         
  450.     bra    L406
  451. L341
  452. ;         if (ctx->Depth.Mask) 
  453.     move.l    #$229C,d0
  454.     add.l    a4,d0
  455.     move.l    d0,a3
  456.     tst.b    $9(a3)
  457.     beq.b    L350
  458. L342
  459. ;            for (i=0;
  460.     moveq    #0,d0
  461.     bra.b    L348
  462. L343
  463. ;               if (*m) 
  464.     tst.b    (a0)
  465.     beq.b    L347
  466. L344
  467. ;                  if (z[i] > *zptr) 
  468.     move.l    d0,d3
  469.     add.l    d3,d3
  470.     add.l    a2,d3
  471.     move.l    d3,a3
  472.     move.w    (a3),d4
  473.     cmp.w    (a1),d4
  474.     bls.b    L346
  475. L345
  476. ;                     *zptr = z[i];
  477.     move.l    d0,d3
  478.     add.l    d3,d3
  479.     add.l    a2,d3
  480.     move.l    d3,a3
  481.     move.w    (a3),(a1)
  482. ;                     passed++;
  483.     addq.l    #1,d2
  484.     bra.b    L347
  485. L346
  486. ;                     *m = 0;
  487.     clr.b    (a0)
  488. L347
  489.     addq.l    #1,d0
  490.     addq.w    #2,a1
  491.     addq.w    #1,a0
  492. L348
  493.     cmp.l    d1,d0
  494.     blo.b    L343
  495. L349
  496.     bra.b    L357
  497. L350
  498. ;            for (i=0;
  499.     moveq    #0,d0
  500.     bra.b    L356
  501. L351
  502. ;               if (*m) 
  503.     tst.b    (a0)
  504.     beq.b    L355
  505. L352
  506. ;                  if (z[i] > *zptr) 
  507.     move.l    d0,d3
  508.     add.l    d3,d3
  509.     add.l    a2,d3
  510.     move.l    d3,a3
  511.     move.w    (a3),d4
  512.     cmp.w    (a1),d4
  513.     bls.b    L354
  514. L353
  515. ;                     passed++;
  516.     addq.l    #1,d2
  517.     bra.b    L355
  518. L354
  519. ;                     *m = 0;
  520.     clr.b    (a0)
  521. L355
  522.     addq.l    #1,d0
  523.     addq.w    #2,a1
  524.     addq.w    #1,a0
  525. L356
  526.     cmp.l    d1,d0
  527.     blo.b    L351
  528. L357
  529. ;         
  530.     bra    L406
  531. L358
  532. ;         if (ctx->Depth.Mask) 
  533.     move.l    #$229C,d0
  534.     add.l    a4,d0
  535.     move.l    d0,a3
  536.     tst.b    $9(a3)
  537.     beq.b    L367
  538. L359
  539. ;            for (i=0;
  540.     moveq    #0,d0
  541.     bra.b    L365
  542. L360
  543. ;               if (*m) 
  544.     tst.b    (a0)
  545.     beq.b    L364
  546. L361
  547. ;                  if (z[i] != *zptr) 
  548.     move.l    d0,d3
  549.     add.l    d3,d3
  550.     add.l    a2,d3
  551.     move.l    d3,a3
  552.     move.w    (a3),d4
  553.     cmp.w    (a1),d4
  554.     beq.b    L363
  555. L362
  556. ;                     *zptr = z[i];
  557.     move.l    d0,d3
  558.     add.l    d3,d3
  559.     add.l    a2,d3
  560.     move.l    d3,a3
  561.     move.w    (a3),(a1)
  562. ;                     passed++;
  563.     addq.l    #1,d2
  564.     bra.b    L364
  565. L363
  566. ;                     *m = 0;
  567.     clr.b    (a0)
  568. L364
  569.     addq.l    #1,d0
  570.     addq.w    #2,a1
  571.     addq.w    #1,a0
  572. L365
  573.     cmp.l    d1,d0
  574.     blo.b    L360
  575. L366
  576.     bra.b    L374
  577. L367
  578. ;            for (i=0;
  579.     moveq    #0,d0
  580.     bra.b    L373
  581. L368
  582. ;               if (*m) 
  583.     tst.b    (a0)
  584.     beq.b    L372
  585. L369
  586. ;                  if (z[i] != *zptr) 
  587.     move.l    d0,d3
  588.     add.l    d3,d3
  589.     add.l    a2,d3
  590.     move.l    d3,a3
  591.     move.w    (a3),d4
  592.     cmp.w    (a1),d4
  593.     beq.b    L371
  594. L370
  595. ;                     passed++;
  596.     addq.l    #1,d2
  597.     bra.b    L372
  598. L371
  599. ;                     *m = 0;
  600.     clr.b    (a0)
  601. L372
  602.     addq.l    #1,d0
  603.     addq.w    #2,a1
  604.     addq.w    #1,a0
  605. L373
  606.     cmp.l    d1,d0
  607.     blo.b    L368
  608. L374
  609. ;         
  610.     bra    L406
  611. L375
  612. ;         if (ctx->Depth.Mask) 
  613.     move.l    #$229C,d0
  614.     add.l    a4,d0
  615.     move.l    d0,a3
  616.     tst.b    $9(a3)
  617.     beq.b    L384
  618. L376
  619. ;            for (i=0;
  620.     moveq    #0,d0
  621.     bra.b    L382
  622. L377
  623. ;               if (*m) 
  624.     tst.b    (a0)
  625.     beq.b    L381
  626. L378
  627. ;                  if (z[i] == *zptr) 
  628.     move.l    d0,d3
  629.     add.l    d3,d3
  630.     add.l    a2,d3
  631.     move.l    d3,a3
  632.     move.w    (a3),d4
  633.     cmp.w    (a1),d4
  634.     bne.b    L380
  635. L379
  636. ;                     *zptr = z[i];
  637.     move.l    d0,d3
  638.     add.l    d3,d3
  639.     add.l    a2,d3
  640.     move.l    d3,a3
  641.     move.w    (a3),(a1)
  642. ;                     passed++;
  643.     addq.l    #1,d2
  644.     bra.b    L381
  645. L380
  646. ;                     *m =0;
  647.     clr.b    (a0)
  648. L381
  649.     addq.l    #1,d0
  650.     addq.w    #2,a1
  651.     addq.w    #1,a0
  652. L382
  653.     cmp.l    d1,d0
  654.     blo.b    L377
  655. L383
  656.     bra.b    L391
  657. L384
  658. ;            for (i=0;
  659.     moveq    #0,d0
  660.     bra.b    L390
  661. L385
  662. ;               if (*m) 
  663.     tst.b    (a0)
  664.     beq.b    L389
  665. L386
  666. ;                  if (z[i] == *zptr) 
  667.     move.l    d0,d3
  668.     add.l    d3,d3
  669.     add.l    a2,d3
  670.     move.l    d3,a3
  671.     move.w    (a3),d4
  672.     cmp.w    (a1),d4
  673.     bne.b    L388
  674. L387
  675. ;                     passed++;
  676.     addq.l    #1,d2
  677.     bra.b    L389
  678. L388
  679. ;                     *m =0;
  680.     clr.b    (a0)
  681. L389
  682.     addq.l    #1,d0
  683.     addq.w    #2,a1
  684.     addq.w    #1,a0
  685. L390
  686.     cmp.l    d1,d0
  687.     blo.b    L385
  688. L391
  689. ;         
  690.     bra.b    L406
  691. L392
  692. ;         if (ctx->Depth.Mask) 
  693.     move.l    #$229C,d0
  694.     add.l    a4,d0
  695.     move.l    d0,a3
  696.     tst.b    $9(a3)
  697.     beq.b    L399
  698. L393
  699. ;            for (i=0;
  700.     moveq    #0,d0
  701.     bra.b    L397
  702. L394
  703. ;               if (*m) 
  704.     tst.b    (a0)
  705.     beq.b    L396
  706. L395
  707. ;                  *zptr = z[i];
  708.     move.l    d0,d3
  709.     add.l    d3,d3
  710.     add.l    a2,d3
  711.     move.l    d3,a3
  712.     move.w    (a3),(a1)
  713. ;                  passed++;
  714.     addq.l    #1,d2
  715. L396
  716.     addq.l    #1,d0
  717.     addq.w    #2,a1
  718.     addq.w    #1,a0
  719. L397
  720.     cmp.l    d1,d0
  721.     blo.b    L394
  722. L398
  723.     bra.b    L400
  724. L399
  725. ;            passed = n;
  726.     move.l    d1,d2
  727. L400
  728. ;         
  729.     bra.b    L406
  730. L401
  731. ;         for (i=0;
  732.     moveq    #0,d0
  733.     bra.b    L403
  734. L402
  735. ;            mask[i] = 0;
  736.     move.l    $1C(a5),a1
  737.     clr.b    0(a1,d0.l)
  738.     addq.l    #1,d0
  739. L403
  740.     cmp.l    d1,d0
  741.     blo.b    L402
  742. L404
  743. ;         
  744.     bra.b    L406
  745. L405
  746. ;         gl_problem(ctx, "Bad depth func in gl_depth_test_s
  747.     move.l    #L288,-(a7)
  748.     move.l    a4,-(a7)
  749.     jsr    _gl_problem
  750.     addq.w    #$8,a7
  751. L406
  752.     move.l    d2,d0
  753.     movem.l    (a7)+,d2-d4/a2-a4
  754.     unlk    a5
  755.     rts
  756.  
  757. L288
  758.     dc.b    'Bad depth func in gl_depth_test_span_generic',0
  759.  
  760.     SECTION "_gl_depth_test_span_less:0",CODE
  761.  
  762.  
  763. ;GLuint gl_depth_test_span_less( GLcontext* ctx,
  764.     XDEF    _gl_depth_test_span_less
  765. _gl_depth_test_span_less
  766.     movem.l    d2-d4/a2-a4,-(a7)
  767.     movem.l    $24(a7),d1/d2/a2/a4
  768.     move.l    $20(a7),d4
  769.     move.l    $1C(a7),a3
  770. L409
  771. ;   GLdepth *zptr = Z_ADDRESS( ctx, x, y );
  772.     move.l    a3,a1
  773.     move.l    $8FC(a1),a0
  774.     move.l    $C(a0),a1
  775.     move.l    $8FC(a3),a0
  776.     move.l    4(a0),d0
  777.     muls.l    d2,d0
  778.     lea    0(a1,d0.l*2),a0
  779.     lea    0(a0,d1.l*2),a0
  780. ;   GLuint passed = 0;
  781.     moveq    #0,d0
  782. ;   for (i=0;
  783.     moveq    #0,d1
  784.     bra.b    L415
  785. L410
  786. ;      if (mask[i]) 
  787.     tst.b    0(a4,d1.l)
  788.     beq.b    L414
  789. L411
  790. ;         if (z[i] < zptr[i]) 
  791.     move.w    0(a2,d1.l*2),d3
  792.     cmp.w    0(a0,d1.l*2),d3
  793.     bhs.b    L413
  794. L412
  795. ;            zptr[i] = z[i];
  796.     move.w    0(a2,d1.l*2),0(a0,d1.l*2)
  797. ;            passed++;
  798.     addq.l    #1,d0
  799.     bra.b    L414
  800. L413
  801. ;            mask[i] = 0;
  802.     clr.b    0(a4,d1.l)
  803. L414
  804.     addq.l    #1,d1
  805. L415
  806.     cmp.l    d4,d1
  807.     blo.b    L410
  808. L416
  809.     movem.l    (a7)+,d2-d4/a2-a4
  810.     rts
  811.  
  812.     SECTION "_gl_depth_test_span_greater:0",CODE
  813.  
  814.  
  815. ;GLuint gl_depth_test_span_greater( GLcontext* ctx,
  816.     XDEF    _gl_depth_test_span_greater
  817. _gl_depth_test_span_greater
  818.     movem.l    d2-d4/a2-a4,-(a7)
  819.     movem.l    $24(a7),d1/d2/a2/a4
  820.     move.l    $20(a7),d4
  821.     move.l    $1C(a7),a3
  822. L417
  823. ;   GLdepth *zptr = Z_ADDRESS( ctx, x, y );
  824.     move.l    a3,a1
  825.     move.l    $8FC(a1),a0
  826.     move.l    $C(a0),a1
  827.     move.l    $8FC(a3),a0
  828.     move.l    4(a0),d0
  829.     muls.l    d2,d0
  830.     lea    0(a1,d0.l*2),a0
  831.     lea    0(a0,d1.l*2),a0
  832. ;   GLuint passed = 0;
  833.     moveq    #0,d0
  834. ;   for (i=0;
  835.     moveq    #0,d1
  836.     bra.b    L423
  837. L418
  838. ;      if (mask[i]) 
  839.     tst.b    0(a4,d1.l)
  840.     beq.b    L422
  841. L419
  842. ;         if (z[i] > zptr[i]) 
  843.     move.w    0(a2,d1.l*2),d3
  844.     cmp.w    0(a0,d1.l*2),d3
  845.     bls.b    L421
  846. L420
  847. ;            zptr[i] = z[i];
  848.     move.w    0(a2,d1.l*2),0(a0,d1.l*2)
  849. ;            passed++;
  850.     addq.l    #1,d0
  851.     bra.b    L422
  852. L421
  853. ;            mask[i] = 0;
  854.     clr.b    0(a4,d1.l)
  855. L422
  856.     addq.l    #1,d1
  857. L423
  858.     cmp.l    d4,d1
  859.     blo.b    L418
  860. L424
  861.     movem.l    (a7)+,d2-d4/a2-a4
  862.     rts
  863.  
  864.     SECTION "_gl_depth_test_pixels_generic:0",CODE
  865.  
  866.  
  867. ;void gl_depth_test_pixels_generic( GLcontext* ctx,
  868.     XDEF    _gl_depth_test_pixels_generic
  869. _gl_depth_test_pixels_generic
  870. L537    EQU    -$68
  871.     link    a5,#L537
  872.     movem.l    d2/d3/a2-a4,-(a7)
  873.     move.l    $C(a5),d1
  874.     move.l    $8(a5),a1
  875.     move.l    $1C(a5),a2
  876.     move.l    $18(a5),a4
  877. L426
  878. ;   switch (ctx->Depth.Func)
  879.     move.l    $229C(a1),d0
  880.     sub.l    #$200,d0
  881.     cmp.l    #7,d0
  882.     bhi    L535
  883.     move.l    L538(pc,d0.l*4),a0
  884.     jmp    (a0)
  885. L538
  886.     dc.l    L531
  887.     dc.l    L427
  888.     dc.l    L507
  889.     dc.l    L443
  890.     dc.l    L475
  891.     dc.l    L491
  892.     dc.l    L459
  893.     dc.l    L523
  894. ;      
  895. L427
  896. ;         if (ctx->Depth.Mask) 
  897.     tst.b    $22A5(a1)
  898.     beq.b    L436
  899. L428
  900. ;            for (i=0;
  901.     moveq    #0,d0
  902.     bra.b    L434
  903. L429
  904. ;               if (mask[i]) 
  905.     tst.b    0(a2,d0.l)
  906.     beq.b    L433
  907. L430
  908. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  909.     move.l    $8FC(a1),a0
  910.     move.l    $C(a0),-$68(a5)
  911.     move.l    $8FC(a1),a0
  912.     move.l    4(a0),d2
  913.     move.l    $14(a5),a3
  914.     muls.l    0(a3,d0.l*4),d2
  915.     add.l    d2,d2
  916.     add.l    -$68(a5),d2
  917.     move.l    d2,-$64(a5)
  918.     move.l    $10(a5),a3
  919.     move.l    0(a3,d0.l*4),d2
  920.     move.l    -$64(a5),a3
  921.     lea    0(a3,d2.l*2),a0
  922. ;                  if (z[i] < *zptr) 
  923.     move.l    d0,d2
  924.     add.l    d2,d2
  925.     add.l    a4,d2
  926.     move.l    d2,a3
  927.     move.w    (a3),d3
  928.     cmp.w    (a0),d3
  929.     bhs.b    L432
  930. L431
  931. ;                     *zptr = z[i];
  932.     move.l    d0,d2
  933.     add.l    d2,d2
  934.     add.l    a4,d2
  935.     move.l    d2,a3
  936.     move.w    (a3),(a0)
  937.     bra.b    L433
  938. L432
  939. ;                     mask[i] = 0;
  940.     clr.b    0(a2,d0.l)
  941. L433
  942.     addq.l    #1,d0
  943. L434
  944.     cmp.l    d1,d0
  945.     blo.b    L429
  946. L435
  947.     bra.b    L442
  948. L436
  949. ;            for (i=0;
  950.     moveq    #0,d0
  951.     bra.b    L441
  952. L437
  953. ;               if (mask[i]) 
  954.     tst.b    0(a2,d0.l)
  955.     beq.b    L440
  956. L438
  957. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  958.     move.l    $8FC(a1),a0
  959.     move.l    $C(a0),-$60(a5)
  960.     move.l    $8FC(a1),a0
  961.     move.l    4(a0),d2
  962.     move.l    $14(a5),a3
  963.     muls.l    0(a3,d0.l*4),d2
  964.     add.l    d2,d2
  965.     add.l    -$60(a5),d2
  966.     move.l    d2,-$5C(a5)
  967.     move.l    $10(a5),a3
  968.     move.l    0(a3,d0.l*4),d2
  969.     move.l    -$5C(a5),a3
  970.     lea    0(a3,d2.l*2),a0
  971. ;                  if (z[i] < *zptr) 
  972.     move.l    d0,d2
  973.     add.l    d2,d2
  974.     add.l    a4,d2
  975.     move.l    d2,a3
  976.     move.w    (a3),d3
  977.     cmp.w    (a0),d3
  978.     blo.b    L440
  979. L439
  980. ;                     mask[i] = 0;
  981.     clr.b    0(a2,d0.l)
  982. L440
  983.     addq.l    #1,d0
  984. L441
  985.     cmp.l    d1,d0
  986.     blo.b    L437
  987. L442
  988. ;         
  989.     bra    L536
  990. L443
  991. ;         if (ctx->Depth.Mask) 
  992.     tst.b    $22A5(a1)
  993.     beq.b    L452
  994. L444
  995. ;            for (i=0;
  996.     moveq    #0,d0
  997.     bra.b    L450
  998. L445
  999. ;               if (mask[i]) 
  1000.     tst.b    0(a2,d0.l)
  1001.     beq.b    L449
  1002. L446
  1003. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1004.     move.l    $8FC(a1),a0
  1005.     move.l    $C(a0),-$58(a5)
  1006.     move.l    $8FC(a1),a0
  1007.     move.l    4(a0),d2
  1008.     move.l    $14(a5),a3
  1009.     muls.l    0(a3,d0.l*4),d2
  1010.     add.l    d2,d2
  1011.     add.l    -$58(a5),d2
  1012.     move.l    d2,-$54(a5)
  1013.     move.l    $10(a5),a3
  1014.     move.l    0(a3,d0.l*4),d2
  1015.     move.l    -$54(a5),a3
  1016.     lea    0(a3,d2.l*2),a0
  1017. ;                  if (z[i] <= *zptr) 
  1018.     move.l    d0,d2
  1019.     add.l    d2,d2
  1020.     add.l    a4,d2
  1021.     move.l    d2,a3
  1022.     move.w    (a3),d3
  1023.     cmp.w    (a0),d3
  1024.     bhi.b    L448
  1025. L447
  1026. ;                     *zptr = z[i];
  1027.     move.l    d0,d2
  1028.     add.l    d2,d2
  1029.     add.l    a4,d2
  1030.     move.l    d2,a3
  1031.     move.w    (a3),(a0)
  1032.     bra.b    L449
  1033. L448
  1034. ;                     mask[i] = 0;
  1035.     clr.b    0(a2,d0.l)
  1036. L449
  1037.     addq.l    #1,d0
  1038. L450
  1039.     cmp.l    d1,d0
  1040.     blo.b    L445
  1041. L451
  1042.     bra.b    L458
  1043. L452
  1044. ;            for (i=0;
  1045.     moveq    #0,d0
  1046.     bra.b    L457
  1047. L453
  1048. ;               if (mask[i]) 
  1049.     tst.b    0(a2,d0.l)
  1050.     beq.b    L456
  1051. L454
  1052. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1053.     move.l    $8FC(a1),a0
  1054.     move.l    $C(a0),-$50(a5)
  1055.     move.l    $8FC(a1),a0
  1056.     move.l    4(a0),d2
  1057.     move.l    $14(a5),a3
  1058.     muls.l    0(a3,d0.l*4),d2
  1059.     add.l    d2,d2
  1060.     add.l    -$50(a5),d2
  1061.     move.l    d2,-$4C(a5)
  1062.     move.l    $10(a5),a3
  1063.     move.l    0(a3,d0.l*4),d2
  1064.     move.l    -$4C(a5),a3
  1065.     lea    0(a3,d2.l*2),a0
  1066. ;                  if (z[i] <= *zptr) 
  1067.     move.l    d0,d2
  1068.     add.l    d2,d2
  1069.     add.l    a4,d2
  1070.     move.l    d2,a3
  1071.     move.w    (a3),d3
  1072.     cmp.w    (a0),d3
  1073.     bls.b    L456
  1074. L455
  1075. ;                     mask[i] = 0;
  1076.     clr.b    0(a2,d0.l)
  1077. L456
  1078.     addq.l    #1,d0
  1079. L457
  1080.     cmp.l    d1,d0
  1081.     blo.b    L453
  1082. L458
  1083. ;         
  1084.     bra    L536
  1085. L459
  1086. ;         if (ctx->Depth.Mask) 
  1087.     tst.b    $22A5(a1)
  1088.     beq.b    L468
  1089. L460
  1090. ;            for (i=0;
  1091.     moveq    #0,d0
  1092.     bra.b    L466
  1093. L461
  1094. ;               if (mask[i]) 
  1095.     tst.b    0(a2,d0.l)
  1096.     beq.b    L465
  1097. L462
  1098. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1099.     move.l    $8FC(a1),a0
  1100.     move.l    $C(a0),-$48(a5)
  1101.     move.l    $8FC(a1),a0
  1102.     move.l    4(a0),d2
  1103.     move.l    $14(a5),a3
  1104.     muls.l    0(a3,d0.l*4),d2
  1105.     add.l    d2,d2
  1106.     add.l    -$48(a5),d2
  1107.     move.l    d2,-$44(a5)
  1108.     move.l    $10(a5),a3
  1109.     move.l    0(a3,d0.l*4),d2
  1110.     move.l    -$44(a5),a3
  1111.     lea    0(a3,d2.l*2),a0
  1112. ;                  if (z[i] >= *zptr) 
  1113.     move.l    d0,d2
  1114.     add.l    d2,d2
  1115.     add.l    a4,d2
  1116.     move.l    d2,a3
  1117.     move.w    (a3),d3
  1118.     cmp.w    (a0),d3
  1119.     blo.b    L464
  1120. L463
  1121. ;                     *zptr = z[i];
  1122.     move.l    d0,d2
  1123.     add.l    d2,d2
  1124.     add.l    a4,d2
  1125.     move.l    d2,a3
  1126.     move.w    (a3),(a0)
  1127.     bra.b    L465
  1128. L464
  1129. ;                     mask[i] = 0;
  1130.     clr.b    0(a2,d0.l)
  1131. L465
  1132.     addq.l    #1,d0
  1133. L466
  1134.     cmp.l    d1,d0
  1135.     blo.b    L461
  1136. L467
  1137.     bra.b    L474
  1138. L468
  1139. ;            for (i=0;
  1140.     moveq    #0,d0
  1141.     bra.b    L473
  1142. L469
  1143. ;               if (mask[i]) 
  1144.     tst.b    0(a2,d0.l)
  1145.     beq.b    L472
  1146. L470
  1147. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1148.     move.l    $8FC(a1),a0
  1149.     move.l    $C(a0),-$40(a5)
  1150.     move.l    $8FC(a1),a0
  1151.     move.l    4(a0),d2
  1152.     move.l    $14(a5),a3
  1153.     muls.l    0(a3,d0.l*4),d2
  1154.     add.l    d2,d2
  1155.     add.l    -$40(a5),d2
  1156.     move.l    d2,-$3C(a5)
  1157.     move.l    $10(a5),a3
  1158.     move.l    0(a3,d0.l*4),d2
  1159.     move.l    -$3C(a5),a3
  1160.     lea    0(a3,d2.l*2),a0
  1161. ;                  if (z[i] >= *zptr) 
  1162.     move.l    d0,d2
  1163.     add.l    d2,d2
  1164.     add.l    a4,d2
  1165.     move.l    d2,a3
  1166.     move.w    (a3),d3
  1167.     cmp.w    (a0),d3
  1168.     bhs.b    L472
  1169. L471
  1170. ;                     mask[i] = 0;
  1171.     clr.b    0(a2,d0.l)
  1172. L472
  1173.     addq.l    #1,d0
  1174. L473
  1175.     cmp.l    d1,d0
  1176.     blo.b    L469
  1177. L474
  1178. ;         
  1179.     bra    L536
  1180. L475
  1181. ;         if (ctx->Depth.Mask) 
  1182.     tst.b    $22A5(a1)
  1183.     beq.b    L484
  1184. L476
  1185. ;            for (i=0;
  1186.     moveq    #0,d0
  1187.     bra.b    L482
  1188. L477
  1189. ;               if (mask[i]) 
  1190.     tst.b    0(a2,d0.l)
  1191.     beq.b    L481
  1192. L478
  1193. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1194.     move.l    $8FC(a1),a0
  1195.     move.l    $C(a0),-$38(a5)
  1196.     move.l    $8FC(a1),a0
  1197.     move.l    4(a0),d2
  1198.     move.l    $14(a5),a3
  1199.     muls.l    0(a3,d0.l*4),d2
  1200.     add.l    d2,d2
  1201.     add.l    -$38(a5),d2
  1202.     move.l    d2,-$34(a5)
  1203.     move.l    $10(a5),a3
  1204.     move.l    0(a3,d0.l*4),d2
  1205.     move.l    -$34(a5),a3
  1206.     lea    0(a3,d2.l*2),a0
  1207. ;                  if (z[i] > *zptr) 
  1208.     move.l    d0,d2
  1209.     add.l    d2,d2
  1210.     add.l    a4,d2
  1211.     move.l    d2,a3
  1212.     move.w    (a3),d3
  1213.     cmp.w    (a0),d3
  1214.     bls.b    L480
  1215. L479
  1216. ;                     *zptr = z[i];
  1217.     move.l    d0,d2
  1218.     add.l    d2,d2
  1219.     add.l    a4,d2
  1220.     move.l    d2,a3
  1221.     move.w    (a3),(a0)
  1222.     bra.b    L481
  1223. L480
  1224. ;                     mask[i] = 0;
  1225.     clr.b    0(a2,d0.l)
  1226. L481
  1227.     addq.l    #1,d0
  1228. L482
  1229.     cmp.l    d1,d0
  1230.     blo.b    L477
  1231. L483
  1232.     bra.b    L490
  1233. L484
  1234. ;            for (i=0;
  1235.     moveq    #0,d0
  1236.     bra.b    L489
  1237. L485
  1238. ;               if (mask[i]) 
  1239.     tst.b    0(a2,d0.l)
  1240.     beq.b    L488
  1241. L486
  1242. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1243.     move.l    $8FC(a1),a0
  1244.     move.l    $C(a0),-$30(a5)
  1245.     move.l    $8FC(a1),a0
  1246.     move.l    4(a0),d2
  1247.     move.l    $14(a5),a3
  1248.     muls.l    0(a3,d0.l*4),d2
  1249.     add.l    d2,d2
  1250.     add.l    -$30(a5),d2
  1251.     move.l    d2,-$2C(a5)
  1252.     move.l    $10(a5),a3
  1253.     move.l    0(a3,d0.l*4),d2
  1254.     move.l    -$2C(a5),a3
  1255.     lea    0(a3,d2.l*2),a0
  1256. ;                  if (z[i] > *zptr) 
  1257.     move.l    d0,d2
  1258.     add.l    d2,d2
  1259.     add.l    a4,d2
  1260.     move.l    d2,a3
  1261.     move.w    (a3),d3
  1262.     cmp.w    (a0),d3
  1263.     bhi.b    L488
  1264. L487
  1265. ;                     mask[i] = 0;
  1266.     clr.b    0(a2,d0.l)
  1267. L488
  1268.     addq.l    #1,d0
  1269. L489
  1270.     cmp.l    d1,d0
  1271.     blo.b    L485
  1272. L490
  1273. ;         
  1274.     bra    L536
  1275. L491
  1276. ;         if (ctx->Depth.Mask) 
  1277.     tst.b    $22A5(a1)
  1278.     beq    L500
  1279. L492
  1280. ;            for (i=0;
  1281.     moveq    #0,d0
  1282.     bra.b    L498
  1283. L493
  1284. ;               if (mask[i]) 
  1285.     tst.b    0(a2,d0.l)
  1286.     beq.b    L497
  1287. L494
  1288. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1289.     move.l    $8FC(a1),a0
  1290.     move.l    $C(a0),-$28(a5)
  1291.     move.l    $8FC(a1),a0
  1292.     move.l    4(a0),d2
  1293.     move.l    $14(a5),a3
  1294.     muls.l    0(a3,d0.l*4),d2
  1295.     add.l    d2,d2
  1296.     add.l    -$28(a5),d2
  1297.     move.l    d2,-$24(a5)
  1298.     move.l    $10(a5),a3
  1299.     move.l    0(a3,d0.l*4),d2
  1300.     move.l    -$24(a5),a3
  1301.     lea    0(a3,d2.l*2),a0
  1302. ;                  if (z[i] != *zptr) 
  1303.     move.l    d0,d2
  1304.     add.l    d2,d2
  1305.     add.l    a4,d2
  1306.     move.l    d2,a3
  1307.     move.w    (a3),d3
  1308.     cmp.w    (a0),d3
  1309.     beq.b    L496
  1310. L495
  1311. ;                     *zptr = z[i];
  1312.     move.l    d0,d2
  1313.     add.l    d2,d2
  1314.     add.l    a4,d2
  1315.     move.l    d2,a3
  1316.     move.w    (a3),(a0)
  1317.     bra.b    L497
  1318. L496
  1319. ;                     mask[i] = 0;
  1320.     clr.b    0(a2,d0.l)
  1321. L497
  1322.     addq.l    #1,d0
  1323. L498
  1324.     cmp.l    d1,d0
  1325.     blo.b    L493
  1326. L499
  1327.     bra.b    L506
  1328. L500
  1329. ;            for (i=0;
  1330.     moveq    #0,d0
  1331.     bra.b    L505
  1332. L501
  1333. ;               if (mask[i]) 
  1334.     tst.b    0(a2,d0.l)
  1335.     beq.b    L504
  1336. L502
  1337. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1338.     move.l    $8FC(a1),a0
  1339.     move.l    $C(a0),-$20(a5)
  1340.     move.l    $8FC(a1),a0
  1341.     move.l    4(a0),d2
  1342.     move.l    $14(a5),a3
  1343.     muls.l    0(a3,d0.l*4),d2
  1344.     add.l    d2,d2
  1345.     add.l    -$20(a5),d2
  1346.     move.l    d2,-$1C(a5)
  1347.     move.l    $10(a5),a3
  1348.     move.l    0(a3,d0.l*4),d2
  1349.     move.l    -$1C(a5),a3
  1350.     lea    0(a3,d2.l*2),a0
  1351. ;                  if (z[i] != *zptr) 
  1352.     move.l    d0,d2
  1353.     add.l    d2,d2
  1354.     add.l    a4,d2
  1355.     move.l    d2,a3
  1356.     move.w    (a3),d3
  1357.     cmp.w    (a0),d3
  1358.     bne.b    L504
  1359. L503
  1360. ;                     mask[i] = 0;
  1361.     clr.b    0(a2,d0.l)
  1362. L504
  1363.     addq.l    #1,d0
  1364. L505
  1365.     cmp.l    d1,d0
  1366.     blo.b    L501
  1367. L506
  1368. ;         
  1369.     bra    L536
  1370. L507
  1371. ;         if (ctx->Depth.Mask) 
  1372.     tst.b    $22A5(a1)
  1373.     beq    L516
  1374. L508
  1375. ;            for (i=0;
  1376.     moveq    #0,d0
  1377.     bra    L514
  1378. L509
  1379. ;               if (mask[i]) 
  1380.     tst.b    0(a2,d0.l)
  1381.     beq.b    L513
  1382. L510
  1383. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1384.     move.l    $8FC(a1),a0
  1385.     move.l    $C(a0),-$18(a5)
  1386.     move.l    $8FC(a1),a0
  1387.     move.l    4(a0),d2
  1388.     move.l    $14(a5),a3
  1389.     muls.l    0(a3,d0.l*4),d2
  1390.     add.l    d2,d2
  1391.     add.l    -$18(a5),d2
  1392.     move.l    d2,-$14(a5)
  1393.     move.l    $10(a5),a3
  1394.     move.l    0(a3,d0.l*4),d2
  1395.     move.l    -$14(a5),a3
  1396.     lea    0(a3,d2.l*2),a0
  1397. ;                  if (z[i] == *zptr) 
  1398.     move.l    d0,d2
  1399.     add.l    d2,d2
  1400.     add.l    a4,d2
  1401.     move.l    d2,a3
  1402.     move.w    (a3),d3
  1403.     cmp.w    (a0),d3
  1404.     bne.b    L512
  1405. L511
  1406. ;                     *zptr = z[i];
  1407.     move.l    d0,d2
  1408.     add.l    d2,d2
  1409.     add.l    a4,d2
  1410.     move.l    d2,a3
  1411.     move.w    (a3),(a0)
  1412.     bra.b    L513
  1413. L512
  1414. ;                     mask[i] = 0;
  1415.     clr.b    0(a2,d0.l)
  1416. L513
  1417.     addq.l    #1,d0
  1418. L514
  1419.     cmp.l    d1,d0
  1420.     blo.b    L509
  1421. L515
  1422.     bra    L522
  1423. L516
  1424. ;            for (i=0;
  1425.     moveq    #0,d0
  1426.     bra.b    L521
  1427. L517
  1428. ;               if (mask[i]) 
  1429.     tst.b    0(a2,d0.l)
  1430.     beq.b    L520
  1431. L518
  1432. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1433.     move.l    $8FC(a1),a0
  1434.     move.l    $C(a0),-$10(a5)
  1435.     move.l    $8FC(a1),a0
  1436.     move.l    4(a0),d2
  1437.     move.l    $14(a5),a3
  1438.     muls.l    0(a3,d0.l*4),d2
  1439.     add.l    d2,d2
  1440.     add.l    -$10(a5),d2
  1441.     move.l    d2,-$C(a5)
  1442.     move.l    $10(a5),a3
  1443.     move.l    0(a3,d0.l*4),d2
  1444.     move.l    -$C(a5),a3
  1445.     lea    0(a3,d2.l*2),a0
  1446. ;                  if (z[i] == *zptr) 
  1447.     move.l    d0,d2
  1448.     add.l    d2,d2
  1449.     add.l    a4,d2
  1450.     move.l    d2,a3
  1451.     move.w    (a3),d3
  1452.     cmp.w    (a0),d3
  1453.     beq.b    L520
  1454. L519
  1455. ;                     mask[i] = 0;
  1456.     clr.b    0(a2,d0.l)
  1457. L520
  1458.     addq.l    #1,d0
  1459. L521
  1460.     cmp.l    d1,d0
  1461.     blo.b    L517
  1462. L522
  1463. ;         
  1464.     bra    L536
  1465. L523
  1466. ;         if (ctx->Depth.Mask) 
  1467.     tst.b    $22A5(a1)
  1468.     beq    L530
  1469. L524
  1470. ;            for (i=0;
  1471.     moveq    #0,d0
  1472.     bra.b    L528
  1473. L525
  1474. ;               if (mask[i]) 
  1475.     tst.b    0(a2,d0.l)
  1476.     beq.b    L527
  1477. L526
  1478. ;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1479.     move.l    $8FC(a1),a0
  1480.     move.l    $C(a0),-$8(a5)
  1481.     move.l    $8FC(a1),a0
  1482.     move.l    4(a0),d2
  1483.     move.l    $14(a5),a3
  1484.     muls.l    0(a3,d0.l*4),d2
  1485.     add.l    d2,d2
  1486.     add.l    -$8(a5),d2
  1487.     move.l    d2,-4(a5)
  1488.     move.l    $10(a5),a3
  1489.     move.l    0(a3,d0.l*4),d2
  1490.     move.l    -4(a5),a3
  1491.     lea    0(a3,d2.l*2),a0
  1492. ;                  *zptr = z[i];
  1493.     move.l    d0,d2
  1494.     add.l    d2,d2
  1495.     add.l    a4,d2
  1496.     move.l    d2,a3
  1497.     move.w    (a3),(a0)
  1498. L527
  1499.     addq.l    #1,d0
  1500. L528
  1501.     cmp.l    d1,d0
  1502.     blo.b    L525
  1503. L529
  1504. L530
  1505. ;         
  1506.     bra.b    L536
  1507. L531
  1508. ;         for (i=0;
  1509.     moveq    #0,d0
  1510.     bra.b    L533
  1511. L532
  1512. ;            mask[i] = 0;
  1513.     clr.b    0(a2,d0.l)
  1514.     addq.l    #1,d0
  1515. L533
  1516.     cmp.l    d1,d0
  1517.     blo.b    L532
  1518. L534
  1519. ;         
  1520.     bra.b    L536
  1521. L535
  1522. ;         gl_problem(ctx, "Bad depth func in gl_depth_test_p
  1523.     move.l    #L425,-(a7)
  1524.     move.l    a1,-(a7)
  1525.     jsr    _gl_problem
  1526.     addq.w    #$8,a7
  1527. L536
  1528.     movem.l    (a7)+,d2/d3/a2-a4
  1529.     unlk    a5
  1530.     rts
  1531.  
  1532. L425
  1533.     dc.b    'Bad depth func in gl_depth_test_pixels_generic',0
  1534.  
  1535.     SECTION "_gl_depth_test_pixels_less:0",CODE
  1536.  
  1537.  
  1538. ;void gl_depth_test_pixels_less( GLcontext* ctx,
  1539.     XDEF    _gl_depth_test_pixels_less
  1540. _gl_depth_test_pixels_less
  1541. L547    EQU    -$8
  1542.     link    a5,#L547
  1543.     movem.l    d2/d3/a2-a4,-(a7)
  1544.     move.l    $C(a5),d3
  1545.     move.l    $18(a5),a2
  1546.     move.l    $8(a5),a4
  1547. L539
  1548. ;   for (i=0;
  1549.     moveq    #0,d0
  1550.     bra.b    L545
  1551. L540
  1552. ;      if (mask[i]) 
  1553.     move.l    $1C(a5),a1
  1554.     tst.b    0(a1,d0.l)
  1555.     beq.b    L544
  1556. L541
  1557. ;         zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1558.     move.l    a4,a1
  1559.     move.l    $8FC(a1),a0
  1560.     move.l    $C(a0),a1
  1561.     move.l    a4,a3
  1562.     move.l    $8FC(a3),a0
  1563.     move.l    4(a0),d1
  1564.     move.l    $14(a5),a3
  1565.     muls.l    0(a3,d0.l*4),d1
  1566.     lea    0(a1,d1.l*2),a1
  1567.     move.l    $10(a5),a3
  1568.     move.l    0(a3,d0.l*4),d1
  1569.     lea    0(a1,d1.l*2),a0
  1570. ;         if (z[i] < *zptr) 
  1571.     move.w    0(a2,d0.l*2),d2
  1572.     cmp.w    (a0),d2
  1573.     bhs.b    L543
  1574. L542
  1575. ;            *zptr = z[i];
  1576.     move.w    0(a2,d0.l*2),(a0)
  1577.     bra.b    L544
  1578. L543
  1579. ;            mask[i] = 0;
  1580.     move.l    $1C(a5),a1
  1581.     clr.b    0(a1,d0.l)
  1582. L544
  1583.     addq.l    #1,d0
  1584. L545
  1585.     cmp.l    d3,d0
  1586.     blo.b    L540
  1587. L546
  1588.     movem.l    (a7)+,d2/d3/a2-a4
  1589.     unlk    a5
  1590.     rts
  1591.  
  1592.     SECTION "_gl_depth_test_pixels_greater:0",CODE
  1593.  
  1594.  
  1595. ;void gl_depth_test_pixels_greater( GLcontext* ctx,
  1596.     XDEF    _gl_depth_test_pixels_greater
  1597. _gl_depth_test_pixels_greater
  1598. L556    EQU    -$8
  1599.     link    a5,#L556
  1600.     movem.l    d2/d3/a2-a4,-(a7)
  1601.     move.l    $C(a5),d3
  1602.     move.l    $18(a5),a2
  1603.     move.l    $8(a5),a4
  1604. L548
  1605. ;   for (i=0;
  1606.     moveq    #0,d0
  1607.     bra.b    L554
  1608. L549
  1609. ;      if (mask[i]) 
  1610.     move.l    $1C(a5),a1
  1611.     tst.b    0(a1,d0.l)
  1612.     beq.b    L553
  1613. L550
  1614. ;         zptr = Z_ADDRESS(ctx,x[i],y[i]);
  1615.     move.l    a4,a1
  1616.     move.l    $8FC(a1),a0
  1617.     move.l    $C(a0),a1
  1618.     move.l    a4,a3
  1619.     move.l    $8FC(a3),a0
  1620.     move.l    4(a0),d1
  1621.     move.l    $14(a5),a3
  1622.     muls.l    0(a3,d0.l*4),d1
  1623.     lea    0(a1,d1.l*2),a1
  1624.     move.l    $10(a5),a3
  1625.     move.l    0(a3,d0.l*4),d1
  1626.     lea    0(a1,d1.l*2),a0
  1627. ;         if (z[i] > *zptr) 
  1628.     move.w    0(a2,d0.l*2),d2
  1629.     cmp.w    (a0),d2
  1630.     bls.b    L552
  1631. L551
  1632. ;            *zptr = z[i];
  1633.     move.w    0(a2,d0.l*2),(a0)
  1634.     bra.b    L553
  1635. L552
  1636. ;            mask[i] = 0;
  1637.     move.l    $1C(a5),a1
  1638.     clr.b    0(a1,d0.l)
  1639. L553
  1640.     addq.l    #1,d0
  1641. L554
  1642.     cmp.l    d3,d0
  1643.     blo.b    L549
  1644. L555
  1645.     movem.l    (a7)+,d2/d3/a2-a4
  1646.     unlk    a5
  1647.     rts
  1648.  
  1649.     SECTION "_gl_read_depth_span_float:0",CODE
  1650.  
  1651.  
  1652. ;void gl_read_depth_span_float( GLcontext* ctx,
  1653.     XDEF    _gl_read_depth_span_float
  1654. _gl_read_depth_span_float
  1655.     movem.l    d2/d3/a2,-(a7)
  1656.     fmovem.x fp2,-(a7)
  1657.     movem.l    $20(a7),d1-d3/a1
  1658.     move.l    $1C(a7),a0
  1659. L557
  1660. ;   scale = 1.0F / DEPTH_SCALE;
  1661.     fmove.s    #$.37800080,fp1
  1662. ;   if (ctx->Buffer->Depth) 
  1663.     move.l    $8FC(a0),a2
  1664.     tst.l    $C(a2)
  1665.     beq.b    L562
  1666. L558
  1667. ;      zptr = Z_ADDRESS( ctx, x, y );
  1668.     move.l    $8FC(a0),a2
  1669.     move.l    $8FC(a0),a0
  1670.     move.l    4(a0),d0
  1671.     muls.l    d3,d0
  1672.     move.l    $C(a2),a2
  1673.     lea    0(a2,d0.l*2),a0
  1674.     lea    0(a0,d2.l*2),a2
  1675. ;      for (i=0;
  1676.     moveq    #0,d0
  1677.     bra.b    L560
  1678. L559
  1679. ;         depth[i] = (GLfloat) zptr[i] * scale;
  1680.     moveq    #0,d2
  1681.     move.w    0(a2,d0.l*2),d2
  1682.     fmove.l    d2,fp0
  1683.     fmul.x    fp1,fp0
  1684.     fmove.s    fp0,0(a1,d0.l*4)
  1685.     addq.l    #1,d0
  1686. L560
  1687.     cmp.l    d1,d0
  1688.     blo.b    L559
  1689. L561
  1690.     bra.b    L565
  1691. L562
  1692. ;      for (i=0;
  1693.     moveq    #0,d0
  1694.     bra.b    L564
  1695. L563
  1696. ;         depth[i] = 0.0F;
  1697.     clr.l    0(a1,d0.l*4)
  1698.     addq.l    #1,d0
  1699. L564
  1700.     cmp.l    d1,d0
  1701.     blo.b    L563
  1702. L565
  1703.     fmovem.x (a7)+,fp2
  1704.     movem.l    (a7)+,d2/d3/a2
  1705.     rts
  1706.  
  1707.     SECTION "_gl_read_depth_span_int:0",CODE
  1708.  
  1709.  
  1710. ;void gl_read_depth_span_int( GLcontext* ctx,
  1711.     XDEF    _gl_read_depth_span_int
  1712. _gl_read_depth_span_int
  1713.     movem.l    d2/d3/a2,-(a7)
  1714.     movem.l    $14(a7),d1-d3/a1
  1715.     move.l    $10(a7),a0
  1716. L566
  1717. ;   if (ctx->Buffer->Depth) 
  1718.     move.l    $8FC(a0),a2
  1719.     tst.l    $C(a2)
  1720.     beq.b    L568
  1721. L567
  1722. ;      GLdepth *zptr = Z_ADDRESS( ctx, x, y );
  1723.     move.l    $8FC(a0),a2
  1724.     move.l    $8FC(a0),a0
  1725.     move.l    4(a0),d0
  1726.     muls.l    d3,d0
  1727.     move.l    $C(a2),a2
  1728.     lea    0(a2,d0.l*2),a0
  1729. ;      MEMCPY( depth, 
  1730.     moveq    #1,d0
  1731.     asl.l    d0,d1
  1732.     move.l    d1,-(a7)
  1733.     pea    0(a0,d2.l*2)
  1734.     move.l    a1,-(a7)
  1735.     jsr    _q_memcpy
  1736.     add.w    #$C,a7
  1737.     bra.b    L571
  1738. L568
  1739. ;      for (i=0;
  1740.     moveq    #0,d0
  1741.     bra.b    L570
  1742. L569
  1743. ;         depth[i] = 0;
  1744.     clr.w    0(a1,d0.l*2)
  1745.     addq.l    #1,d0
  1746. L570
  1747.     cmp.l    d1,d0
  1748.     blo.b    L569
  1749. L571
  1750.     movem.l    (a7)+,d2/d3/a2
  1751.     rts
  1752.  
  1753.     SECTION "_gl_alloc_depth_buffer:0",CODE
  1754.  
  1755.  
  1756. ;void gl_alloc_depth_buffer( GLcontext* ctx )
  1757.     XDEF    _gl_alloc_depth_buffer
  1758. _gl_alloc_depth_buffer
  1759.     move.l    a2,-(a7)
  1760.     move.l    $8(a7),a2
  1761. L573
  1762. ;   if (ctx->Buffer->Depth) 
  1763.     move.l    $8FC(a2),a0
  1764.     tst.l    $C(a0)
  1765.     beq.b    L575
  1766. L574
  1767. ;      free(ctx->Buffer->Depth);
  1768.     move.l    $8FC(a2),a0
  1769.     move.l    $C(a0),-(a7)
  1770.     jsr    _free
  1771.     addq.w    #4,a7
  1772. ;      ctx->Buffer->Depth = NULL;
  1773.     move.l    $8FC(a2),a0
  1774.     clr.l    $C(a0)
  1775. L575
  1776. ;   ctx->Buffer->Depth = (GLdepth *) malloc( ctx->Buffer->Width
  1777.     move.l    $8FC(a2),a0
  1778.     move.l    4(a0),d0
  1779.     move.l    $8FC(a2),a0
  1780.     muls.l    $8(a0),d0
  1781.     moveq    #1,d1
  1782.     asl.l    d1,d0
  1783.     move.l    d0,-(a7)
  1784.     jsr    _malloc
  1785.     addq.w    #4,a7
  1786.     move.l    $8FC(a2),a0
  1787.     move.l    d0,$C(a0)
  1788. ;   if (!ctx->Buffer->Depth) 
  1789.     move.l    $8FC(a2),a0
  1790.     tst.l    $C(a0)
  1791.     bne.b    L577
  1792. L576
  1793. ;      ctx->Depth.Test = GL_FALSE;
  1794.     clr.b    $22A4(a2)
  1795. ;      gl_error( ctx, GL_OUT_OF_MEMORY, "Couldn't allocate dept
  1796.     move.l    #L572,-(a7)
  1797.     pea    $505.w
  1798.     move.l    a2,-(a7)
  1799.     jsr    _gl_error
  1800.     add.w    #$C,a7
  1801. L577
  1802.     move.l    (a7)+,a2
  1803.     rts
  1804.  
  1805. L572
  1806.     dc.b    'Couldn't allocate depth buffer',0
  1807.  
  1808.     SECTION "_gl_clear_depth_buffer:0",CODE
  1809.  
  1810.  
  1811. ;void gl_clear_depth_buffer( GLcontext* ctx )
  1812.     XDEF    _gl_clear_depth_buffer
  1813. _gl_clear_depth_buffer
  1814.     movem.l    d2/d3/a2,-(a7)
  1815.     move.l    $10(a7),a1
  1816. L578
  1817. ;   GLdepth clear_value = (GLdepth) (ctx->Depth.Clear * DEPTH_SCAL
  1818.     fmove.s    $22A0(a1),fp0
  1819.     fmul.s    #$.477FFF00,fp0
  1820.     fmove.l    fp0,d0
  1821. ;   if (ctx->Visual->DepthBits==0 || !ctx->Buffer->Depth || !ctx->
  1822.     move.l    $8F8(a1),a0
  1823.     tst.l    $1C(a0)
  1824.     beq.b    L581
  1825. L579
  1826.     move.l    $8FC(a1),a0
  1827.     tst.l    $C(a0)
  1828.     beq.b    L581
  1829. L580
  1830.     tst.b    $22A5(a1)
  1831.     bne.b    L582
  1832. L581
  1833.     movem.l    (a7)+,d2/d3/a2
  1834.     rts
  1835. L582
  1836. ;   if (ctx->Scissor.Enabled) 
  1837.     move.l    a1,a0
  1838.     add.l    #$DE92,a0
  1839.     tst.b    (a0)
  1840.     beq.b    L589
  1841. L583
  1842. ;      for (y=ctx->Buffer->Ymin;
  1843.     move.l    $8FC(a1),a0
  1844.     move.l    $2C(a0),d2
  1845.     bra.b    L587
  1846. L584
  1847. ;         GLdepth *d = Z_ADDRESS( ctx, ctx->Buffer->Xmin, y )
  1848.     move.l    $8FC(a1),a0
  1849.     move.l    $C(a0),a2
  1850.     move.l    $8FC(a1),a0
  1851.     move.l    4(a0),d1
  1852.     muls.l    d2,d1
  1853.     lea    0(a2,d1.l*2),a2
  1854.     move.l    $8FC(a1),a0
  1855.     move.l    $24(a0),d1
  1856.     lea    0(a2,d1.l*2),a0
  1857. ;         GLint n = ctx->Buffer->Xmax - ctx->Buffer->Xmin + 
  1858.     move.l    $8FC(a1),a2
  1859.     move.l    $28(a2),d1
  1860.     move.l    $8FC(a1),a2
  1861.     sub.l    $24(a2),d1
  1862.     addq.l    #1,d1
  1863. ;         
  1864. L585
  1865. ;            *d++ = clear_value;
  1866.     move.w    d0,(a0)+
  1867. ;            n--;
  1868.     subq.l    #1,d1
  1869.     tst.l    d1
  1870.     bne.b    L585
  1871. L586
  1872.     addq.l    #1,d2
  1873. L587
  1874.     move.l    $8FC(a1),a0
  1875.     cmp.l    $30(a0),d2
  1876.     ble.b    L584
  1877. L588
  1878.     bra    L597
  1879. L589
  1880. ;      if (sizeof(GLdepth)==2 && (clear_value&0xff)==(clear_val
  1881.     moveq    #0,d2
  1882.     move.w    d0,d2
  1883.     and.l    #$FF,d2
  1884.     moveq    #0,d1
  1885.     move.w    d0,d1
  1886.     moveq    #$8,d3
  1887.     asr.l    d3,d1
  1888.     cmp.l    d1,d2
  1889.     bne.b    L591
  1890. L590
  1891. ;           2*ctx-
  1892.     move.l    $8FC(a1),a0
  1893.     move.l    4(a0),d1
  1894.     moveq    #1,d2
  1895.     asl.l    d2,d1
  1896.     move.l    $8FC(a1),a0
  1897.     muls.l    $8(a0),d1
  1898.     move.l    d1,-(a7)
  1899.     and.l    #$FFFF,d0
  1900.     and.l    #$FF,d0
  1901.     move.l    d0,-(a7)
  1902.     move.l    $8FC(a1),a0
  1903.     move.l    $C(a0),-(a7)
  1904.     jsr    _q_memset
  1905.     add.w    #$C,a7
  1906.     bra    L597
  1907. L591
  1908. ;         GLdepth *d = ctx->Buffer->Depth;
  1909.     move.l    $8FC(a1),a0
  1910.     move.l    $C(a0),a0
  1911. ;         GLint n = ctx->Buffer->Width * ctx->Buffer->Height;
  1912.     move.l    $8FC(a1),a2
  1913.     move.l    $8FC(a1),a1
  1914.     move.l    4(a2),d1
  1915.     muls.l    $8(a1),d1
  1916. ;         while (n>=16) 
  1917.     bra.b    L593
  1918. L592
  1919. ;            d[0] = clear_value;
  1920.     move.w    d0,(a0)
  1921. ;    d[1] = clear_value;
  1922.     move.w    d0,2(a0)
  1923. ;            d[2] = clear_value;
  1924.     move.w    d0,4(a0)
  1925. ;    d[3] = clear_value;
  1926.     move.w    d0,6(a0)
  1927. ;            d[4] = clear_value;
  1928.     move.w    d0,$8(a0)
  1929. ;    d[5] = clear_value;
  1930.     move.w    d0,$A(a0)
  1931. ;            d[6] = clear_value;
  1932.     move.w    d0,$C(a0)
  1933. ;    d[7] = clear_value;
  1934.     move.w    d0,$E(a0)
  1935. ;            d[8] = clear_value;
  1936.     move.w    d0,$10(a0)
  1937. ;    d[9] = clear_value;
  1938.     move.w    d0,$12(a0)
  1939. ;            d[10] = clear_value;
  1940.     move.w    d0,$14(a0)
  1941. ;   d[11] = clear_value;
  1942.     move.w    d0,$16(a0)
  1943. ;            d[12] = clear_value;
  1944.     move.w    d0,$18(a0)
  1945. ;   d[13] = clear_value;
  1946.     move.w    d0,$1A(a0)
  1947. ;            d[14] = clear_value;
  1948.     move.w    d0,$1C(a0)
  1949. ;   d[15] = clear_value;
  1950.     move.w    d0,$1E(a0)
  1951. ;            d += 16;
  1952.     add.w    #$20,a0
  1953. ;            n -= 16;
  1954.     sub.l    #$10,d1
  1955. L593
  1956.     cmp.l    #$10,d1
  1957.     bge.b    L592
  1958. L594
  1959. ;         while (n>0) 
  1960.     bra.b    L596
  1961. L595
  1962. ;            *d++ = clear_value;
  1963.     move.w    d0,(a0)+
  1964. ;            n--;
  1965.     subq.l    #1,d1
  1966. L596
  1967.     cmp.l    #0,d1
  1968.     bgt.b    L595
  1969. L597
  1970.     movem.l    (a7)+,d2/d3/a2
  1971.     rts
  1972.  
  1973.     END
  1974.